Software Architecture
ثبت نشده
چکیده
A good design is the key to a successful product. Almost 2000 years ago, the Roman architect Vitruvius already recorded what makes a design good: durability (rmitas), utility (utilitas) and charm (venustas). These quality requirements still hold, for buildings as well as software systems. A well-designed system is easy to implement, is understandable and reliable, and allows for smooth evolution. Badly designed systems may work at rst, but they are hard to maintain, diicult to test, and unreliable. The design phase is a most crucial step in the software development process. Design is a problem-solving activity, and as such very much a matter of trial and error. In the presentation of a mathemathical proof, subsequent steps dovetail well into each other and everything drops into place at the end. The actual discovery of the proof was probably quite diierent. The same holds for the design of software. We should not confuse the outcome of the design process with the process itself. The outcome of the design process is a `rational reconstruction' of that process. (Note that we made precisely the same remark with respect to the outcome of the requirements engineering process.) During the design phase, the system is decomposed into parts that each have a lower complexity than the system as a whole, while the parts together solve the user's problem. Since the complexity of the individual components should be surveyable, it is important that the interaction between components not be too complicated. The design problem can now be formulated as follows: how to determine this decomposition. There really is no universal method for this. The design process is a creative one, and the quality and expertise of the designers is a critical determinant for its success. Yet, during the course of the years, a number of ideas and guidelines have emerged which may serve us in designing software. These have resulted in a large number of design methods, which are the topic of chapters 12 and 13. In this chapter, the focus is on characterizing the result of the design process, the blueprint which serves as a starting point for the implementation. In the problem-solving processes that take place during software development, we employ previously acquired knowledge. In order to better understand how we go about during design, it is helpful to know how knowledge is stored and processed in human memory. Information from perception is entered in …
منابع مشابه
A Quantitative Evaluation of Maintainability of Software Architecture Styles
Proper decisions play a crucial role in any software architecture design process. An important decision of design stage is the selection of a suitable software architecture style. Lack of investigation on the quantitative impact of architecture styles on software quality attributes is the main problem in using such styles. Consequently, the use of architecture styles in designing is based on th...
متن کاملAvailability evaluation of Software architecture of object oriented Style using coloured Petri nets
Software architecture is one of the most fundamental products in the process of software development in the areas of behavioral or non- behavioral features like availability or transformability change. There are different ways to evaluate software architecture one of which is the creation of application model. An executable model of software architecture is an official description of architectu...
متن کاملA New Algorithm for Performance Evaluation of Homogeneous Architectural Styles
Software architecture is considered one of the most important indices of software engineering today. Software Architecture is a technical description of a system indicating its component structures and their relationships, and is the principles and rules governing designing. The success of the software depends on whether the system can satisfy the quality attributes. One of the most critical as...
متن کاملA New Algorithm for Performance Evaluation of Homogeneous Architectural Styles
Software architecture is considered one of the most important indices of software engineering today. Software Architecture is a technical description of a system indicating its component structures and their relationships, and is the principles and rules governing designing. The success of the software depends on whether the system can satisfy the quality attributes. One of the most critical as...
متن کاملA New Architecture Based on Artificial Neural Network and PSO Algorithm for Estimating Software Development Effort
Software project management has always faced challenges that have often had a great impact on the outcome of projects in future. For this, Managers of software projects always seek solutions against challenges. The implementation of unguaranteed approaches or mere personal experiences by managers does not necessarily suffice for solving the problems. Therefore, the management area of software p...
متن کاملSurvey the Security Function of Integration of vehicular ad hoc Networks with Software-defiend Networks
In recent years, Vehicular Ad Hoc Networks (VANETs) have emerged as one of the most active areas in the field of technology to provide a wide range of services, including road safety, passenger's safety, amusement facilities for passengers and emergency facilities. Due to the lack of flexibility, complexity and high dynamic network topology, the development and management of current Vehicular A...
متن کامل